<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
<script>

//【示例3】在下面这个复杂的表达式中，逻辑与左侧的运算数是一个赋值表达式，右侧的运算数也是一个赋值表达式。但是左侧仅是一个简单的数值赋值，而右侧的是把一个函数对象赋值给了变量b。在逻辑与运算中，左侧的赋值并没有真正的复制给变量a，当逻辑与运算执行右侧的表达式时，该表达式是把一个函数赋值给变量b，然后利用小括号运算符调用这个函数，返回变量a的值，结果并没有返回变量a的值为6，而是undefined。
var a; 										// 定义变量a
alert(a = 6 && (b = function(){			// 逻辑与运算表达式
   return a; 								// 返回变量a的值
})()
); 											// 结果返回undefined

var a = 6; 									// 定义并初始化变量a
b = function(){							// 定义函数对象b
   return a;
}
alert(a && b());		// 利用逻辑与运算，根据a的逻辑值，决定是否调用函数b

</script>
</head>
<body>




</body>
</html>
